package com.iris.live.services.data.repositories;

/**
 * Created by yitianle on 2017/9/1.
 */
public interface StockForecastRepository {

    /**
     *  获取在途库存/在店库存 有批发日期，无入库日期该车型的库存/有批发日期，有入库日期该车型的库存
     * @param brand
     * @param carClass
     * @param carType
     * @param queryType 1在途 2在店
     * @return
     */
    Integer getStockOnTheWay(String brand,String carClass,String carType,Integer queryType,String permit);

    /**
     *  获取平均库存周转天数 按照销售管理报表，计算该车型的平均库存周转天数
     * @param brand
     * @param grade
     * @param model
     * @return
     */
    Double getAvgStockTurnoverDays(String permit,String brand ,String  grade,String model);

    /**
     * 获取销售目标 SNP导入表表格中该车型的大昌行TA
     * @param brand
     * @param carClass
     * @param carType
     * @return
     */
    Integer getSaleTarget(String brand,String carClass,String carType,String permit);

    /**
     * 获取存量线索 意向车型匹配，已进店，但未订单的线索数
     * @param brand
     * @param carClass
     * @param carType
     * @return
     */
    Integer getClueStockNum(String brand,String carClass,String carType,String permit);

    /**
     * 获取增量线索 意向车型匹配，有效期内（前2个月内）未进店线索+过去30天（上个月）新增线索数
     * @param brand
     * @param carClass
     * @param carType
     * @return
     */
    Integer getClueAddNum(String brand,String carClass,String carType,String permit);

    /**
     * 获取线索进店率 过去三个月的该车型的平均线索进店率	保留一位小数
     * @param brand
     * @param carClass
     * @param carType
     * @return
     */
    String getClueStoreRate(String brand,String carClass,String carType,String permit);

    /**
     * 获取进店线索订单率 过去三个月的该车型的平均进店线索订单率	保留一位小数
     * @param brand
     * @param carClass
     * @param carType
     * @return
     */
    String getClueStoreOrderNum(String brand,String carClass,String carType,String permit);

    /**
     * 获取存量订单 该车型未开票订单数
     * @param brand
     * @param carClass
     * @param carType
     * @return
     */
    Integer getStockOrderNum(String brand,String carClass,String carType,String permit);

    /**
     * 获取订单交车率 过去三个月的该车型的订单交车率
     * @param brand
     * @param carClass
     * @param carType
     * @return
     */
    String getOrderLeaveCarNum(String brand,String carClass,String carType,String permit);

    /**
     * 未分配资源(无批发日期的资源（未开票）)
     * @param brand
     * @param carClass
     * @param carType
     * @param permit
     * @return
     */
    Integer undistributedSource(String brand,String carClass,String carType,String permit);

    /**
     * 获取新增订单 进店线索数*进店线索订单率
     * @return
     */
    Integer getAddOrderNum();

    /**
     * 进店线索数
     * @return
     */
    Integer getClueStoreNum();

    /**
     * 销售预计
     * @return
     */
    Integer saleEstimate();

    /**
     * 销售缺口
     * @return
     */
    Integer saleGap();

    /**
     * 库存缺口
     * @return
     */
    Integer stockGap();

    /**
     * 采购缺口
     * @return
     */
    Integer purchaseGap();

}
